package com.cn.web.user.vo.childaccount;

import com.cn.empty.EmptyCheck;
import com.cn.empty.EmptyCheckObject;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * description: UserChildAccountDTO <br>
 * date: 23.7.27 16:51 <br>
 * author: cn_yaojin <br>
 * version: 1.0 <br>
 */
@Setter
@Getter
@Accessors(chain = true)
@ApiModel(value = "开放平台子账号实体信息")
public class UserChildAccountDTO {

    /**
     * 关联主账号ID
     */
    @EmptyCheckObject(message = "关联主账号ID不能为空")
    private Long userId;

    /**
     * 企业ID（用户申请为供应商后，业务中台会推送给该用户的企业信息给相应的子系统）
     */
    @EmptyCheck(message = "关联企业ID不能为空")
    private String companyId;

    /**
     * 10- B2B交易平台供应商、20 - B2B交易平台采购商、30 - 农资销售商城经销商、40 - 农技服务商、50 - 庄稼医院
     * 与主账号的以上身份保持一致即可
     */
    @EmptyCheck(message = "角色信息不能为空")
    private String userItemType;

    /**
     * 登录账号
     */
    @EmptyCheck(message = "登录账号不能为空")
    private String accountName;

    /**
     * 电话
     */
    @EmptyCheck(message = "电话不能为空")
    private String phone;


    /**
     * 登录密码
     */
    @EmptyCheck(message = "登录密码不能为空")
    private String passWord;

    /**
     * 0-外部用户账号 1-内部管理员账号
     */
    @ApiModelProperty(value = "0-外部用户账号 1-内部管理员账号")
    private Integer accountType = 0;


    @Setter
    @Getter
    @Accessors(chain = true)
    public static class UserChildAccountUpdateDTO {

        @EmptyCheckObject(message = "子账号ID不能为空")
        private Long id;

        /**
         * 电话
         */
        private String phone;


        /**
         * 登录密码
         */
        private String passWord;
    }


    @Setter
    @Getter
    @Accessors(chain = true)
    public static class UserChildAccountDeleteDTO {

        @EmptyCheckObject(message = "子账号ID不能为空")
        private Long id;

    }

    @Setter
    @Getter
    @Accessors(chain = true)
    public static class UserChildAccountStatusDTO {

        @EmptyCheckObject(message = "子账号ID不能为空")
        private Long id;


        /**
         * 0-正常 1-禁用
         */
        @EmptyCheckObject(message = "状态不能为空")
        private Integer status;
    }
}
